<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    
<script>
    //什么时候使用箭头
    // setTimeout(function () {
    //     console.log(this)
    // }, 1000);
    
    // setTimeout(() => {
    //     console.log(this)
    // }, 1000);
    
    //问题：箭头函数中的this是如何查找的？
    //答案：向外层作用域中，一层层查找this，直到有this的定义
    // const obj = {
    //     aaa() {
    //         // setTimeout(function () {
    //         //     console.log(this) //window
    //         // })

    //         setTimeout(() => {
    //             console.log(this) //obj对象
    //         })
    //     }
    // }
    // obj.aaa()

    const obj = {
        aaa() {
            setTimeout(function () {
                setTimeout(function () {
                    console.log(this) //window
                })

                setTimeout(() => {
                    console.log(this) //window
                })
            })

            setTimeout(() => {
                setTimeout(function () {
                    console.log(this) //window
                })

                setTimeout(() => {
                    console.log(this) //obj
                })
            })
        }
    }

    obj.aaa()
</script>
</body>
</html>